/*
 * Copyright (C), 2007-2018, 铭师堂教育科技有限公司
 * FileName: CmdbService.java
 * Author:   zhaoyi
 * Date:     2018年7月13日 上午9:22:10
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.secsbrain.cloudconsole.remote;

import java.util.List;

import com.secsbrain.cmdb.client.model.App;
import com.secsbrain.cmdb.client.model.AppDetail;
import com.secsbrain.cmdb.client.model.HostDetail;
import com.secsbrain.common.ResponseVo;

/**
 * CMDB相关服务
 *
 * @author zhaoyi
 */
public interface CmdbRemoteService {

	/**
	 * 功能描述: <br>
	 * 通过应用ID查询应用详情
	 *
	 * @param appId
	 * @return
	 */
	ResponseVo<AppDetail> queryAppDetailById(Long appId);
	
	/**
	 * 功能描述: <br>
	 * 通过应用ID数组查询应用详情列表
	 *
	 * @param appIds
	 * @return
	 */
	ResponseVo<List<AppDetail>> queryAppDetailByIds(Long[] appIds);
	
	/**
	 * 功能描述: <br>
	 * 查询所有应用列表
	 *
	 * @return
	 */
	ResponseVo<List<App>> queryAllAppList();
	
	/**
	 * 功能描述: <br>
	 * 查询环境列表
	 *
	 * @return
	 */
	ResponseVo<List<String>> queryEnvList();
	
	/**
     * 功能描述: <br>
     * 查询线上/线下环境列表
     *
     * @return
     */
	ResponseVo<List<String>> queryEnvListByFlag(String flag);
	
	/**
	 * 功能描述: <br>
	 * 通过主机ID查询主机详情
	 *
	 * @param id
	 * @return
	 */
	ResponseVo<HostDetail> queryHostDetailById(Long hostId);
	
	/**
	 * 功能描述: <br>
	 * 查询所有主机
	 *
	 * @return
	 */
	ResponseVo<List<HostDetail>> queryAllHost();
	
	/**
     * 功能描述: <br>
     * 通过应用ID查询质量负责人信息
     *
     * @return
     */
	ResponseVo<Long> queryQualityByAppId(Long appId);
	
	/**
	 * 功能描述: <br>
	 * 根据环境名区分是否是线上环境
	 * 
	 */
	ResponseVo<String> queryEnvFlag(String envName);
	
}
